Expand description
A framework for building large-scale event sourced microservices.
Thalo is a framework for creating event driven apps with event sourcing. Some closely related patterns are used, including event sourcing, CQRS, transactional outbox, event driven, DDD.
Core Modules
- Aggregates - Consistency boundary around a domain entity responsible for handling commands and applying events.
- Events - Events that occured in your system.
- Event Store - Event store containing all application events.
- Event Stream - Event stream, such as Kafka/RedPanda.
Official Crates
Core
- thalo - Core framework (this crate).
- thalo-schema - Build aggregate schemas into Rust code.
- thalo-testing - Test utils for thalo apps.
- thalo-macros - Macros for implementing traits. This can be enabled in the core crate with the
macros
feature flag.
Event stores
- thalo-postgres - Postgres implementation of
EventStore
. - thalo-inmemory - In-memory implementation of
EventStore
. - thalo-filestore - Filestore implementation of
EventStore
.
Event streams
- thalo-kafka - Kafka implementation of
EventStream
.
Current status
Thalo is still under heavy development and is not production ready.
Get in touch
If you’d like to ask/discuss or learn more, you can reach via the liks below:
Examples
Examples can be seen in the examples
directory.
Modules
Macros
Include generated aggregate code.
Structs
An infallible error type typically used for event handlers or event streams that do not fail.